package com.edu.d1_polymorphic;

/**
 * 多态
 */

/**
 * 多态的格式
 * 1、父类类型 对象名称 = new 子类构造器();
 * 2、接口  对象名称 = new 实现类构造器();
 */

/**
 * 多态的成员访问特点
 * 1、方法访问：编译看左边，运行看右边，就是说，编译的时候他会先看父类当中的方法，运行的时候会运行子类当中的方法
 * 2、变量访问：编译看左边，运行也看左边，就是说，编译的时候会先看父类当中的变量，运行的时候也会先看父类当中的变量
 */
public class Test {
    public static void main(String[] args) {
        Animal cat=new Cat();
        Animal dog= new Dog();
        //会优先运行出右边子类中的方法
        cat.run();
        dog.run();
        //会输出左边父类的变量，假如父类中没有这个变量，会报错
        System.out.println(cat.name);
        System.out.println(dog.name);
    }
}
